White balancing that uses values of white-balanced colors on the visible gamut&#39;s boundary

ABSTRACT

White balancing is performed using a mapping that maps the visible gamut&#39;s boundary into itself. A predefined color W in  is mapped into a color W out  which is a white color or a color perceived as white under some viewing conditions. If S in  is some other color, a corresponding color P in  is determined on the visible gamut&#39;s boundary. P in  can be on the intersection of the visible gamut&#39;s boundary with a plane containing S in  and W in  in a linear color coordinate system. S in  is mapped into a color S out  obtained from W out  and a value of the mapping on P in .

BACKGROUND OF THE INVENTION

The present invention relates to digital image processing, and moreparticularly to color transformations of the kind typically associatedwith white balancing.

Images are affected by image viewing conditions, e.g. by background andsurrounding colors and illumination. However, humans can adapt to theviewing conditions, and it may be desirable to adjust the digitalrepresentation of the image in accordance with human adaptation. Forexample, if a scene is illuminated by a red lamp, the scene may acquirea reddish tint. An object that would reflect white light under whiteillumination may reflect reddish light under red illumination and maylook reddish. However, humans adapt to the red illumination and may stopnoticing the reddish tint. If the image is faithfully captured by adigital camera, the reddish tint would be captured, and would bereproduced when the image is displayed with a printer or a computermonitor. If the reproduced image is viewed under white illumination, theviewer would notice the reddish tint because the white illuminationwould not allow the viewer to adapt to the tint. Therefore, it maydesirable to remove the reddish tint from the reproduced image so thatthe viewer's perception of the reproduced image would approach theviewer's perception of the original image.

Human adaptation can be modeled by a “white balancing” process whichtransforms image colors using a linear transformation chosen based onhuman adaptation to a white color. Suppose for example that the sceneillumination or some other viewing conditions change a white color W tosome color W_(new) (W_(new) would be reddish in the red-lamp exampleabove). Supposedly, humans would adapt to the viewing conditions andwould perceive the color W_(new) as W. Therefore, a lineartransformation is chosen that maps the color W_(new) into W. Thenanother linear transformation may be performed that would change W intoa color that would be perceived as W under the viewing conditions of thereproduced image.

SUMMARY

This section summarizes some features of the invention. Other featuresare described in the subsequent sections. The invention is defined bythe appended claims, which are incorporated into this section byreference.

The inventor has observed that a linear transformation may map a colorinto a region outside of the visible gamut. Also, the inventor hasobserved that human adaptation is not linear. For example, humans do notseem to adapt to at least some of the colors located on the visiblegamut's boundary (some of such colors can be generated by monochromaticradiation; the boundary also includes other colors, e.g. purple).

In some embodiments of the present invention, a white balancing processmaps the visible gamut boundary into itself. (The terms “mapping” and“transformation” are used interchangeably herein.) For example, eachcolor on the visible gamut's boundary can be mapped into itself. Inaddition, as in prior art, some chosen color W_(new) is mapped into awhite color W (alternatively W may be a non-white color perceived aswhite under some viewing conditions; W_(new) may or may not be white).Any multiple αW_(new) of the color W_(new) is mapped into a multiple ofW. The remaining colors (i.e. colors that are not on the visible gamut'sboundary and are not multiples of W_(new)) are mapped using someinterpolation based on the mapping of the colors on the visible gamut'sboundary and W_(new).

To illustrate some embodiments, we will use the subscript “in” for thestarting colors (the input colors of the white-balancing process), andthe subscript “out” for the output colors. Accordingly, we will denoteW_(in)=W_(new), and W_(out)=W The process maps W_(in) into W_(out), andmaps each color P_(in) on the visible gamut's boundary into a colorP_(out) on the visible gamut's boundary. (In some embodiments,P_(out)=P_(in).) For the remaining colors S_(in), some interpolation isused to determine the corresponding colors S_(out). More particularly,suppose that S_(in) can be represented as some function (e.g. a linearcombination) of the color W_(in) and some color P_(in) on the visiblegamut's boundary. Then S_(out) is generated as some function (e.g. alinear combination) of W_(out) and the respective color P_(out) (i.e.the value of the mapping on P_(in)). In some embodiments, the functionsare chosen so that S_(out) is in the visible gamut.

The invention is not limited to the features and advantages describedabove. Other features are described below. The invention is defined bythe appended claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates color vectors for some embodiments of the presentinvention.

FIG. 2 shows a flowchart of a white-balancing process according to someembodiments of the present invention, and a block diagram of a computersystem executing the white balancing process according to someembodiments of the present invention.

FIGS. 3 and 4 illustrate color vectors and color coordinate systems usedin some embodiments of the present invention.

FIG. 5 shows a flowchart of a white-balancing process according to someembodiments of the present invention.

DESCRIPTION OF SOME EMBODIMENTS

The embodiments described in this section illustrate but do not limitthe invention. The invention is defined by the appended claims.

FIGS. 1 and 2 illustrate an exemplary white balancing process. Colorsare shown as vectors in some color coordinate system. Visible gamut 110is shown as a non-circular cone with a vertex O, but can be some othershape depending on the color coordinate system. Color W_(in) is mappedinto a white color W_(out) (the term “white” includes gray colors) orinto some multiple of W_(out) (in a linear color coordinate system),i.e. into some color cW_(out) where c is a positive constant. The colorW_(out) can be, for example, a standard white point (e.g. CIE D₅₀ orD₆₅) with some predefined physical luminance, but the invention is notlimited to any particular W_(out) definition. Non-white colors are alsopossible. For example, if the white balancing is performed to transforman image captured under red illumination to an image to be viewed underblue illumination, then W_(out) may be bluish white.

Any given input color S_(in) is mapped into a color S_(out) as shown inFIG. 2. In the example of FIG. 2, the image is captured by an imagecapture device 201 (e.g. a digital camera, an image synthesis system ina computer, or some other device). The image is white balanced by asoftware-programmed computer system including one or more computerprocessors 202 executing computer instructions stored in a memory 204and/or received over a network (not shown), and/or by hardwiredcircuitry. The white-balanced image may then be reproduced by a device205 (e.g. a computer monitor, a printer, or some other device).

The white balancing operation includes steps 206-230. If the input colorS_(in) is a multiple of W_(in) (in a linear color coordinate system),i.e. S_(in)=αW_(in) for some non-negative number α, then S_(out) is setto αW_(out). See step 206. The white balancing for the color S_(in) cannow be terminated, i.e. the subsequent steps are skipped.

If S_(in) lies on the visible gamut's boundary (step 208), then S_(out)is generated to be on the visible gamut's boundary, and the subsequentsteps are skipped. Exemplary S_(out) computations include:

S_(out)=S_(in)   (1)

or

S _(out) =S _(in) ·|W _(out) |/|W _(in)|  (2)

where |•| denotes some measure of the magnitude, luminance orbrightness, as discussed in more detail below.

If S_(in) is neither a multiple of W_(in) nor on the visible gamut'sboundary, then at step 210 a color P_(in) is determined on the visualgamut's boundary such that P_(in) corresponds to S_(in) in somepredefined sense. For example, P_(in) can be such that S_(in) is afunction of P_(in) and W_(in) (and possibly other parameters). In someembodiments, the function is a linear combination, i.e.:

S _(in) =αP _(in) +βW _(in)   (3)

for some coefficients α, β determined at step 210.

The color P_(in) can be chosen in many ways. In the case of equation(3), in a linear color coordinate system, the color P_(in) lies in theplane containing the vectors W_(in) and S_(in), and hence on theintersection of this plane with the visible gamut's boundary. If theboundary is a conical surface, the intersection may be two raysoriginating from the origin O. P_(in) can be chosen on any of theserays. In some embodiments P_(in) is chosen so that S_(in) lies betweenP_(in) and W_(in) (as in FIG. 1). In particular, in some embodiments,both α and β are positive. The magnitude of P_(in) is unimportant sinceαP_(in) can be adjusted by the choice of α.

Suppose that the white balancing process maps the color P_(in) into somecolor P_(out) (determined at step 220, or possibly determined at step208 performed when white-balancing the color P_(in)). At step 230,S_(out) is obtained as some function of P_(out) and W_(out) (andpossibly of some other parameters). In some embodiments, the function isa linear combination:

S _(out) =α′P _(out) +β′W _(out)   (4)

where α′ and β′ are some coefficients such that S_(out) is in visiblegamut 110. Of note, S_(out) will be in the visible gamut if α′ and β′are non-negative and the visible gamut is a cone with an aperture of atmost 180°.

The coefficients α′ and β′ can be chosen in different ways. In someembodiments, each of these coefficients is a continuous function of oneor both of the coefficients α and β. For example, α=α′ and β=β′. In someembodiments, α′ and β′ are chosen so that S_(in) and S_(out) will havethe same brightness. Brightness can be defined in different ways, e.g.as the physical luminance, the lightness in CIELUV, or the colorvector's length in an orthonormal color coordinate system such as DEF.See U.S. patent application Ser. No. 11/321,443 filed Dec. 28, 2005 byS. N. Bezryadin, published as no. 2007/0146745 A1 on Jun. 28, 2007,incorporated herein by reference. In some embodiments, α′ and β′ arechosen to preserve the brightness ratio B(S_(out))/B(S_(in)), where B(•)is the brightness function. Thus,

B(S _(out))/B(S _(in))=B(W _(out))/B(W _(in))=const.   (5)

In some embodiments, the brightness is preserved on the visible gamut'sboundary, but is increased or decreased inside the visible gamut:

B(P _(out))=B(P _(in))

B(S_(out)) increases or decreases when S_(in) moves from the visiblegamut's boundary to W_(in).

Some embodiments preserve color saturation. Saturation represents theamount of white in the color (greater saturation means less white). Forinput colors S_(in), saturation may represent the amount of color W_(in)in S_(in). For output colors S_(out), saturation may represent theamount of W_(out). Saturation can be defined in different ways. Forexample, saturation of S_(in) can be represented as the angle γ₁(FIG. 1) between S_(in) and W_(in). Saturation of S_(out) can berepresented as the angle γ₂ between S_(out) and W_(out). In someembodiments, S_(out) is chosen so that

γ₂=γ₁   (6)

In particular, the color S_(out) can be determined as follows:

1. At step 210, determine P_(in) as some non-zero vector which, in alinear color coordinate system, lies in the intersection of (i) theplane containing the vectors W_(in), S_(in) and (ii) the boundary ofvisible gamut 110.

2. At step 220, determine P_(out) as described above.

3. At step 230, in the plane containing P_(out) and W_(out), select theray in the visible gamut such that the angle γ₂ between the ray andS_(out) is equal to the angle γ₁ between S_(in) and W_(in). This raydefines the direction of S_(out). The ray is chosen to lie betweenP_(out) and W_(out).

4. Finally, at step 230, determine the magnitude |S_(out)| of the vectorS_(out) in some suitable way, for example to preserve the magnituderatio, i.e.:

|S _(out) |=|S _(in) |·|W _(out) |/|W _(in)|  (7)

If the magnitude is the brightness, then the brightness ratio will bepreserved as in (5).

In some embodiments, equation (6) is replaced with preserving thesaturation ratio:

C(S _(in))/C(P _(in))=C(S _(out))/C(P _(out))   (8)

where C(•) is saturation (which can be defined with reference to W_(in)for input colors and with reference to W_(out) for output colors).Denote φ₁=<(S_(in),P_(in)), i.e. the angle between S_(in) and P_(in),and φ₂=<(S_(out),P_(out)). If the saturation is defined using angles asfor (6), then (8) can be implemented as:

γ₁/(γ₁+φ₁)=γ₂/(γ₂+φ₂)   (9)

Equation (9) uniquely defines γ₂ because the sumγ₂+φ₂=<(P_(out),W_(out)) is uniquely defined by P_(out) and W_(out)Thus, at step 230, γ₂ is determined as:

γ₂=γ₁/(γ₁+φ₁)·(γ₂+φ₂)   (10)

Some embodiments use the equations (8)-(10) for small values of γ₁ (e.g.γ₁<0/1 radians), but use some other equation (e.g. a polynomial in γ₁ ofa degree greater than 1) for larger values of γ₁. In some embodiments,γ₂ is a continuous and/or monotonic function of γ₁.

Computational complexity of the white balancing process may depend onthe color representation. Some representations use a linear colorcoordinate system such that W_(out) lies on one of the coordinate axes.For example, if W_(out) is a D₆₅ white point, a suitable colorcoordinate system is the orthonormal system DEF described in theaforementioned U.S. patent application Ser. No. 11/321,443 andillustrated in FIG. 3. Briefly, DEF is a linear transformation of the1931 CIE XYZ color coordinate system for the 2° field:

$\begin{matrix}{\begin{bmatrix}D \\E \\F\end{bmatrix} = {A_{{XYZ} - {DEF}}\begin{bmatrix}\begin{matrix}X \\Y\end{matrix} \\Z\end{bmatrix}}} & (11) \\{{where}\text{:}} & \; \\{A_{{XYZ} - {DEF}} = \begin{bmatrix}0.205306 & 0.712507 & 0.467031 \\1.853667 & {- 1.279659} & {- 0.442859} \\{- 0.365451} & 1.011998 & {- 0.610425}\end{bmatrix}} & (12)\end{matrix}$

The DEF system is orthonormal in the sense that its color matchingfunctions d(λ), ē(λ), f(λ) form an orthonormal system in L²:

∫ d (λ)ē(λ)dλ=∫ d (λ) f (λ)dλ=∫ ē(λ) f (λ)dλ=0   (13)

∫ [ d (λ)]² dλ=∫ [ē(λ)]² dλ=∫ [ f (λ)]² dλ=K

where K is a positive constant defined by the measurement units. Theintegrals are taken over the visible range of wavelengths λ.

The D axis (D>0 and E=F=0) corresponds to the CIE D₆₅ white colorstandard. (D₆₅ defines the chromaticity coordinates only.) For redcolors produced by a monochromatic radiation with λ=700 nm, thecoordinate F=0 and E>0. The visible spectrum is a non-circular coneextending upward from the vertex at the origin O (the origin is theblack color).

Some embodiments use the spherical coordinate system BCH (Brightness,Chroma, Hue) based on DEF and described in the aforementioned U.S.patent application Ser. No. 11/321,443. For a color S with DEFcoordinates (D,E,F), the BCH coordinates are:

B=|S|=√{square root over (D² +E ² +F ²)}  (14)

C (“chroma”) is the angle between the color S and the D axis;

H (“hue”) is the angle between (i) the orthogonal projection S_(EF) ofthe vector S on the EF plane and (ii) the E axis.

For illustration, suppose that white balancing needs to be performed inthe BCH coordinates so as to preserve the saturation ratio as in (9) andalso preserve either the brightness B defined by (14) or the brightnessratio |S_(out)|/|S_(in)|. Suppose further that P_(out)=P_(in) at step208 (FIG. 2). Denote the BCH coordinates of S_(in) as(B_(in),C_(in),H_(in)), and the BCH coordinates of S_(out) as(B_(out),C_(out),H_(out)). Denote further P=P_(in), and the BCHcoordinates of P as (B_(P),C_(P),H_(P)). At step 230, B_(out), C_(out),H_(out) are computed as follows:

B_(out)B_(in)   (15)

to preserve the brightness, or

B _(out) =B _(in) ·|W _(out) |/|W _(in)|  (16)

to preserve the brightness ratio. Further (see (10)):

C _(out) =C _(P)·γ₁/(γ₁+φ₁)   (17)

H_(out)=H_(p)   (18)

In some embodiments, H_(out) is set to H_(in).

FIGS. 4, 5 illustrate an embodiment which uses two possibly orthonormalcoordinate systems: D′E′F′ for the input colors and D″E″F″ for theoutput colors. D′E′F′ is chosen so that the color W_(in) lies on one ofthe coordinate axes—the D′ axis. D″E″F″ is chosen so that the colorW_(out) lies on one of the coordinate axes—the D″ axis. In someembodiments, D″E″F″ is a linear transform (e.g. a rotation) of D′E′F′.In some embodiments, each of the two coordinate systems is a lineartransform (e.g. a rotation) of DEF. One of D′E′F′, D″E″F″ may be DEF.

The white balancing uses the spherical coordinate systems B′C′H′ andB″C″H″ defined for D′E′F′ and D″E″F″ respectively as in (14).

At step 510 (FIG. 5), the white-balancing system (e.g. a computer systemas in FIG. 2) obtains the vectors W_(in), W_(out) in some colorcoordinate system, and selects the coordinate systems D′E′F′, D″E″F″ asdescribed above. At step 520, the input colors S_(in) are converted intothe B′C′H′ coordinates if needed (i.e. if the input data are initiallyin some other coordinate system). At step 530, the white-balancing steps206-230 of FIG. 2 are performed, for example, as follows.

Let us denote P_(in)=(B_(P) _(in) ,C_(P) _(in) ,H_(P) _(in) ) in B′C′H′,and P_(out)=(B_(P) _(out) ,C_(P) _(out) ,H_(P) _(out) ) in B″C″H″. Asseen in the D′E′F′ diagram in FIG. 4, if P_(in) is in the planecontaining S_(in) and W_(in), then H_(P) _(in) =H_(in), so determiningP_(in) is facilitated at step 210. In some embodiments, the computersystem sets C_(P) _(in) =C′_(max)(H_(in)), defined as the maximum C′value in the visible gamut for the fixed hue H′=H_(in). The value B_(P)_(in) is unimportant, and can be determined in any suitable way, forexample as B_(P) _(in) =1, or B_(P) _(in) =B_(in), or B_(P) _(in)=|W_(in)|.

At step 220, if P_(out)=P_(in), then the P_(out) coordinates (B_(P)_(out) ,C_(P) _(out) ,H_(P) _(out) ) in B″C″H″ can be computed as alinear transform of (B_(P) _(in) ,C_(P) _(in) ,H_(P) _(in) ). Fulllinear transform computation can be omitted. Indeed, B_(P) _(out) can beset to any suitable value as described above, e.g. B_(P) _(out) =B_(P)_(in) . Also, once H_(P) _(out) has been computed (as a linear transformor in some other way), then C_(P) _(out) can be computed asC″_(max)(H_(P) _(out) ). In some embodiments, H_(P) _(out) is set toH_(P) _(in) to simplify the computations. Other computational algorithmsare also possible.

At step 230, S_(out) can be computed using any of the techniquesdescribed above in connection with FIGS. 1-3, or using some othertechniques. For example, H_(out) can be set to H_(P) _(out) . B_(out)can be computed using any of the techniques described above, e.g.B_(out)=B_(in)·|W_(out)|/|W_(in)|. C_(out) can also be computed usingany of the techniques described above, for example,

C _(out) =C _(P) _(out) ·C _(in) /C _(P) _(in)   (19.1)

or

C_(out)=C_(in)   (19.2)

or using the equation (19.2) for small C_(in) values (e.g. C_(in)<0.1radians) but using some other equation (e.g. polynomial of a degreegreater than one) for larger C_(in) values.

The invention includes a machine-implemented (e.g. computer-implemented)method for white-balancing a digital image using a mapping that mapsdigital colors into digital colors, the method comprising obtaininginformation on a value W_(out) of said mapping on each of one or morereference colors W_(in). Each color W_(in) is in a visible gamut but noton the visible gamut's boundary.

For at least one color S_(in) in the digital image such that S_(in) isnot a multiple of any one of said one or more reference colors W_(in)and is not on the visible gamut's boundary, the method comprisesdetermining a value S_(out) of said mapping on the color S_(in), whereindetermining S_(out) comprises: determining one or more colors P_(in) onthe visible gamut's boundary from the color S_(in); and determining thevalue S_(out) from (i) one or more of said values of the mapping on theone or more reference colors, and (ii) a value of said mapping on eachof the one or more colors P_(in).

In some embodiments, the mapping maps the visible gamut's boundary intoitself. Thus, each P_(out) is in the visible gamut's boundary. This isnot necessary however. In some embodiments, each color on the visiblegamut's boundary is mapped into itself under said mapping (i.e. themapping is the identity mapping on the visible gamut's boundary).

In some embodiments, for each non-black color S_(in), a ratio of alength of S_(out) to a length of S_(in) is independent of S_(in), thelength being a vector length in a predefined color coordinate system. Insome embodiments, the predefined color coordinate system is10%-orthonormal, or orthonormal.

In some embodiments, each reference color W_(in) is perceived as whiteby a human being under predefined viewing conditions. In someembodiments, each color W_(out) is perceived as white by a human beingunder predefined viewing conditions. For example, if the viewingconditions include a blue lamp, W_(out) could be bluish white assumingthat humans would adapt to the blue lamp and would perceive bluish whiteas white.

The invention includes computer systems programmed to perform the whitebalancing methods discussed above. The invention includescomputer-readable media (disks, tapes, semiconductor memories, andpossibly others) comprising a computer program for causing a computersystem to perform the white balancing methods described above. Theinvention covers downloading such computer programs over a network andin particular covers network transmission methods comprisingtransmission of such computer programs over a network.

The invention is not limited to the embodiments described above, and inparticular to any computations or color coordinate systems. Otherembodiments and variations are within the scope of the invention, asdefined by the appended claims.

1. A machine-implemented method for white-balancing a digital imageusing a mapping that maps digital colors into digital colors, the methodcomprising: obtaining information on a value W_(out) of the mapping on areference color W_(in) lying in a visible gamut but not on the visiblegamut's boundary; for at least one color S_(in) in the digital imagesuch that S_(in) is not a multiple of the reference color W_(in) and isnot on the visible gamut's boundary, determining a value S_(out) of saidmapping on the color S_(in), wherein determining S_(out) comprises:determining a color P_(in) on the visible gamut's boundary from thecolor S_(in); and determining the value S_(out) from said information onthe value W_(out) and from a value P_(out) of said mapping on the colorP_(in).
 2. The method of claim 1 wherein said mapping maps the visiblegamut's boundary into itself.
 3. The method of claim 1 wherein eachcolor on the visible gamut's boundary is mapped into itself under saidmapping.
 4. The method of claim 1 wherein the color P_(in) is a linearcombination of the color S_(in) and the reference color W_(in).
 5. Themethod of claim 1 wherein in a linear color coordinate system, the colorP_(in) lies in a plane containing the reference color W_(in) and thecolor S_(in).
 6. The method of claim 1 wherein the color S_(out) is alinear combination of the color W_(out) and the value P_(out).
 7. Themethod of claim 1 wherein in a linear color coordinate system, the colorS_(out) lies in a plane containing the color W_(out) and the valueP_(out).
 8. The method of claim 1 wherein for each non-black color, aratio of a length of a value of said mapping on the non-black color to alength of the non-black color is independent of the non-black color, thelength being a vector length in a predefined color coordinate system. 9.The method of claim 8 wherein the predefined color coordinate system isorthonormal.
 10. The method of claim 1 wherein the reference colorW_(in) is perceived as white by a human being under predefined viewingconditions.
 11. The method of claim 1 wherein W_(out) is perceived aswhite by a human being under predefined viewing conditions.
 12. Themethod of claim 1 wherein the mapping maps coordinates of S_(in) in afirst color coordinate system into coordinates of S_(out) in a secondcolor coordinate system different from the first color coordinate system13. A machine-implemented method for white-balancing a digital imageusing a mapping that maps digital colors into digital colors, the methodcomprising, for each color S_(in) in the digital image, determining avalue of said mapping on the color S_(in), wherein said mapping mapseach color S_(in) on a visible gamut's boundary into the visible gamut'sboundary.
 14. The method of claim 13 wherein said mapping maps eachcolor S_(in) on the visible gamut's boundary into itself.
 15. The methodof claim 13 wherein said mapping maps each color S_(in) in the visiblegamut but not on the visible gamut's boundary into a color in thevisible gamut but not on the visible gamut's boundary.
 16. A computersystem programmed to perform the method of claim
 1. 17.Computer-readable media comprising a computer program for causing acomputer system to perform the method of claim
 1. 18. A networktransmission method comprising transmitting a computer program over anetwork for downloading the computer program into a computer system, thecomputer program being for causing the computer system to perform themethod of claim
 1. 19. Computer-readable media comprising a computerprogram for causing a computer system to perform the method of claim 2.20. A network transmission method comprising transmitting a computerprogram over a network for downloading the computer program into acomputer system, the computer program being for causing the computersystem to perform the method of claim
 2. 21. Computer-readable mediacomprising a computer program for causing a computer system to performthe method of claim
 3. 22. A network transmission method comprisingtransmitting a computer program over a network for downloading thecomputer program into a computer system, the computer program being forcausing the computer system to perform the method of claim
 3. 23.Computer-readable media comprising a computer program for causing acomputer system to perform the method of claim
 4. 24. A computer systemprogrammed to perform the method of claim
 13. 25. Computer-readablemedia comprising a computer program for causing a computer system toperform the method of claim
 13. 26. A network transmission methodcomprising transmitting a computer program over a network fordownloading the computer program into a computer system, the computerprogram being for causing the computer system to perform the method ofclaim
 13. 27. A computer system programmed to perform the method ofclaim
 14. 28. Computer-readable media comprising a computer program forcausing a computer system to perform the method of claim
 15. 29. Anetwork transmission method comprising transmitting a computer programover a network for downloading the computer program into a computersystem, the computer program being for causing the computer system toperform the method of claim 15.